package pe.edu.unmsm.juegoia.model.impl;

import pe.edu.unmsm.juegoia.model.JuegoTyAModel;
import pe.edu.unmsm.juegoia.model.Posicion;

/**
 *
 * @author Marlon
 */
public class JuegoTyAHHModel extends JuegoTyAModel {

    public JuegoTyAHHModel() {
    }

    @Override
    public void mover(int x, int y) {

        if (isMovimientoLibreValido(x, y)) { // si el movimiento es permitido

            if (isMovimientoComida(x, y)) {
                if (turnoActual == JUGADOR_1) {
                    numFichasRestantesJ2--;
                } else {
                    numFichasRestantesJ1--;
                }
            } else {
//                int jugador = tablero[fichaSeleccionada.getPosX()][fichaSeleccionada.getPosY()];
//                tablero[x][y] = jugador;
//                tablero[fichaSeleccionada.getPosX()][fichaSeleccionada.getPosY()] = 0;
            }

            int jugador = tablero[fichaSeleccionada.getPosX()][fichaSeleccionada.getPosY()];
            tablero[x][y] = jugador;
            tablero[fichaSeleccionada.getPosX()][fichaSeleccionada.getPosY()] = 0;

            if (turnoActual == TURNO_JUGADOR_1) {
                fichaElegidaUltimo = new Posicion(fichaSeleccionada.getPosX(), 
                        fichaSeleccionada.getPosY());
                movElegidoUltimo = new Posicion(x, y);
                
                // calcular movimiento J1
                calcularMovimiento(JUGADOR_1);
            } else {
                fichaElegidaUltimoJ2 = new Posicion(fichaSeleccionada.getPosX(), 
                        fichaSeleccionada.getPosY());
                movElegidoUltimoJ2 = new Posicion(x, y);
                // calcular movimiento J2
                calcularMovimiento(JUGADOR_2);
            }

            cambiarTurno();
            fichaSeleccionada = null;

            if (existeGanador()) {
                System.out.println("Ganador Jugador: " + jugadorGanador);
            }

            notifytableroObservers();

        } else {
        }
    }

    @Override
    public void setNivelMaquina(int i) {
    }
}
